home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Amiga Magazin: Amiga-CD 1995 October
/
Amiga-CD 1995 #10.iso
/
weitere_demos
/
adm
/
arexx
/
gpfax
/
finalwritertogpfax.rexx
next >
Wrap
OS/2 REXX Batch file
|
1995-06-04
|
6KB
|
181 lines
/*
$VER: FinalWriterToGPFax 1.0 (15.4.95)
--- Kurzbeschreibung:
Script erstellt aus einem FinalWriter-Dokument mit Hilfe von GPFax
ein Fax-Dokument. Aus FinalWriter heraus aufzurufen!
Es wird ueber die Menueleiste von Finalwriter integriert und steht
per Button zu Verfuegung.
--- Voreinstellungen (GPFax, s.u.):
-Q=IconMode; -S=No Serial-Device open; -W=WB-Colour
-X=Icon X-Pos.; -Y=Icon Y-Pos.
--- Ausführliche Beschreibung:
Nach Start dieses Script installiert GPFax erst sein Printerdevice
und faengt dadurch saemtliche Druckauftraege ab. Dieses werden dann
in ein Fax gewandelt. Fuer Finalwriter stellt sich die FAX-Erstellung
als ein einfacher Druckauftrag dar. Wurde das Dokument erfolgreich
"ausgedruckt", schaltet sich GPFax in den Vordergrund und stellt
das durch FW erstellte Dokument als FAX dar. Wird diese Darstellung
verlassen, erscheint FW wieder im Vordergrund. Per Requester erfragt
das Script nunmehr, ob die Konvertierung erfolgreich war oder nicht.
War die Wandlung fehlerhaft, so besteht die Moeglichkeit das FAX zu
loeschen und mit Finalwriter ein Neues zu erstellen. Im Erfolgfall
besteht die Moeglichkeit das FAX sofort o. spaeter zu verschicken.
Je nachdem wird FW beendigt oder nicht.
Das Script versucht des Weiteren eine Namensanpassung durchzufuehren.
Das heiszt, der Dokumentenname von FW wird fuer GPFax uebernommen,
so dasz eine spaetere Auffindung erleichtert wird. Sollte dies nicht
moeglich sein, so wird der von GPFax generierte Name beibehalten.
--- History
15-04-95 [CaK] - Erste Version.
Von Carsten Kullik.
*/
/*------------------Voreinstellungen---------------------
-Q=IconMode; -S=No Serial-Device open; -W=WB-Colour
-X=Icon X-Pos.; -Y=Icon Y-Pos.
--------------------------------------------------------*/
Run_FAXPrg = "Run >NIL: GPFax:GPFax -Q -W -S -X0 -Y3"
FAX_Out = "GPFax:FAX_Out"
Error_Open = '"Kann GPFax nicht initialisieren!"'
/*===================Programmstart======================*/
Options Results
Status PortName /*ARexx-Portname des akt. Dokumentes*/
FWPort = RESULT
Address Value FWPort
Save /*Sichere das akt. FinalWriter-Dokument*/
If RC ~= 0 then /*Fehler bei Datensicherung*/
do
ShowMessage 1 0 '"Dokument nicht gesichert!" "" "" "Ende" "" ""'
Exit(20) /*Script abbrechen, Dokument nicht gespeichert*/
end
Status FileName /*Ermittle den Dokumentenname*/
DOSName = '"'||RESULT||'"'
ShowMessage 1 0 '"Das Dokument"' DOSName '"in ein FAX umsetzen?"',
'"Ja" "Nein" ""'
If RESULT ~= 1 then /*Dokument nicht wandeln*/
Exit(5) /*Script abbrechen*/
If ~Show("P","REXX_GPFAX") then /*Laeuft GPFax schon?*/
do /*Nein, dann starten*/
Shell Command Run_FAXPrg
Warte: /*Warte auf Rexx-Port*/
If ~Show("P", "REXX_GPFAX") Then Signal Warte
end
Address "REXX_GPFAX"
PRTDriver On /*aktiviere GPFax-PrinterDevice*/
AutoAnswer Off /*AutoAnswer abschalten*/
Address Value FWPort /*FinalWriter*/
GfxPrintPrefs SHADING GreyScale /*Druck in Graustufen*/
Print Prompt /*Druck ueber GPFax-PrinterDevice*/
if RC ~= 0 then /*Fehler, z.B. Druckabbruch*/
Signal Ende_GPFax
ScreenToBack /*FinalWriter in den Hintergrund*/
Address "REXX_GPFAX" /*GPFax*/
LastFile P /*Ermittle den erzeugten FAX-Dateinamen*/
FAXName = RESULT /*und stelle das FAX auf dem Monitor dar*/
ViewFax FAXName
Address Value FWPort /*FinalWriter*/
ScreenToFront
ShowMessage 1 0 '"Wurde das Dokument"' DOSName '"richtig umgesetzt?"',
'"Ja" "Löschen" ""'
If RESULT ~= 1 then
do
Shell Command "Delete "||FAXName||".p#?" /*Loesche FAX*/
ShowMessage 2 0 '"GPFax beendigen?" "" "" "Ja" "Nein" ""'
If RESULT = 1 then
do
Address "REXX_GPFAX"
QuitFAX
end
Exit(5)
end
/*Wandle den Dateinamen des FAX in den eingegebenen DOS-Namen*/
Seite = 01
DOSName = FAX_Out||'/'||Strip(DOSName, B, '"')
RENAME = 'Rename '||FAXName||'.p'||Seite||' to "'||DOSName'.p'||Seite||'"'
do while ((~Exists(DOSName||'.p'||Seite)) & (Seite>0) & (Seite<100))
If Exists(FAXName||'.p'||Seite) then
do
Seite = Seite + 1
If (length(Seite) = 1) then Seite = Insert('0', Seite)
end
else
do
Seite = Seite - 1
do while (Seite > 0)
If (length(Seite) = 1) then Seite = Insert('0', Seite)
Shell Command RENAME
Seite = Seite - 1
end
FAXName = DOSName
end
end
ShowMessage 1 0 '"'||FAXName||'"' '"sofort versenden?" ""',
'"Ja" "Nein" ""'
If RESULT ~= 1 then
Signal Ende_GPFax
else /*FAX sofort versenden (Initialisiere GPFax)*/
do
do forever
Address "REXX_GPFAX"
OpenSerial
If RC ~= 0 then
do
Address Value FWPort
ShowMessage 1 0 Error_Open '"Schnittstelle belegt?" ""',
'"Prüfe" "Ende" ""'
If RESULT ~= 1 then Signal Ende_GPFax
end
else
leave
end
do forever
Address "REXX_GPFAX"
InitModem
If RC ~= 0 then
do
Address Value FWPort
ShowMessage 1 0 Error_Open '"Modem eingeschaltet?" ""',
'"Prüfe" "Ende" ""'
If RESULT ~= 1 then Signal Ende_GPFax
end
else
leave
end
Address Value FWPort
Quit Force
end
Exit(0) /*ARexx-Script erfolgreich abschlieszen*/
/*---Unterprg. beendigt GPFax & ARexx-Script nach Error/Abbruch---*/
Ende_GPFax:
Address "REXX_GPFAX"
QuitFAX
Exit(10)